package com.woniuxy.controller;

import com.woniuxy.entity.SysOrganization;
import com.woniuxy.service.SysOrganizationService;
import com.woniuxy.util.ResponseUtil;
import org.springframework.web.bind.annotation.*;

import javax.annotation.Resource;

/**
 * 组织机构控制器类
 * 提供组织机构的增删改查等操作接口
 */
@RestController
@RequestMapping("/sysOrganization")
public class SysOrganizationController {
    @Resource
    private SysOrganizationService sysOrganizationService;
    
    /**
     * 查询所有组织机构信息
     * @return 返回所有组织机构信息的响应结果
     */
    @GetMapping
    public ResponseUtil findAllSysOrganization(){
        return sysOrganizationService.findAllSysOrganization();
    }
    
    /**
     * 根据ID查询组织机构信息
     * @param id 组织机构ID
     * @return 返回指定ID的组织机构信息的响应结果
     */
    @GetMapping("/queryById/{id}")
    public ResponseUtil findSysOrganizationById(@PathVariable("id") Integer id){
        return sysOrganizationService.findSysOrganizationById(id);
    }
    
    /**
     * 根据名称查询组织机构信息
     * @param orgName 组织机构名称
     * @return 返回指定名称的组织机构信息的响应结果
     */
    @PostMapping("/orgName")
    public ResponseUtil findSysOrganization(@RequestParam("orgName") String orgName){
        return sysOrganizationService.findSysOrganization(orgName);
    }
    
    /**
     * 添加新的组织机构信息
     * @param sysOrganization 组织机构对象
     * @return 返回添加操作的响应结果
     */
    @PostMapping
    public ResponseUtil addSysOrganization(@RequestBody SysOrganization sysOrganization){
        return sysOrganizationService.addSysOrganization(sysOrganization);
    }
    
    /**
     * 删除指定ID的组织机构信息
     * @param id 组织机构ID
     * @return 返回删除操作的响应结果
     */
    @PutMapping("/{id}")
    public ResponseUtil deleteSysOrganization(@PathVariable Integer id){
        return sysOrganizationService.deleteSysOrganization(id);
    }
    
    /**
     * 更新指定ID的组织机构状态
     * @param id 组织机构ID
     * @param status 组织机构状态
     * @return 返回更新操作的响应结果
     */
    @PutMapping("/{id}/{status}")
    public ResponseUtil updateStatus(@PathVariable Integer id,@PathVariable Integer status){
        return sysOrganizationService.updateStatus(id,status);
    }
}
